package com.hy.controller;

import com.hy.bean.Orderstable;
import com.hy.bean.RespBean;
import com.hy.dto.OrdersDto;
import com.hy.dto.OrdersPartsDto;
import com.hy.service.OrderstableService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

/**
 * (OrderstableVo)表控制层
 *
 * @author makejava
 * @since 2024-05-14 22:03:32
 */
@CrossOrigin
@RestController
@RequestMapping("orderstable")
public class OrderstableController {
//    /**
//     * 服务对象
//     */
    @Resource
    private OrderstableService orderstableService;

    /**
     * 分页查询
     *
     * @return 查询结果
     */
    @GetMapping("/list")
    public RespBean queryByPage(String status,Integer page,Integer limit) {

        return orderstableService.queryAll(status,page,limit);
    }

    /**
     * 分页查询已审核
     *
     * @return 查询结果
     */
    @GetMapping("/listStatus")
    public RespBean queryByPageStatus(String status,Integer page,Integer limit) {

        return orderstableService.queryAllStatus(status,page,limit);
    }
    /**
     * 分页查询已完成
     *
     * @return 查询结果
     */
    @GetMapping("/list2")
    public RespBean queryByPage2(String okstatus,Integer page,Integer limit) {

        return orderstableService.queryAll2(okstatus,page,limit);
    }

    @GetMapping("/queryAll")
    public RespBean queryAll() {
        List<Map<String, Object>> mapList = orderstableService.select();
        return RespBean.success("OK",mapList);
    }


    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @GetMapping("/getById")
    public RespBean queryById(Integer id) {
        return orderstableService.queryById(id);
    }

    /**
     * 新增数据
     *
//     * @param ordersDto 实体
     * @return 新增结果
     */
    @PostMapping("/add")
    public RespBean add(@RequestBody OrdersDto ordersDto) {

        return orderstableService.add(ordersDto);
    }

    /**
     * 修改数据
     *
     //     * @param ordersDto 实体
     * @return 新增结果
     */
    @PostMapping("/update")
    public RespBean update(@RequestBody OrdersPartsDto ordersPartsDto) {
        System.out.println(ordersPartsDto);
        return orderstableService.update(ordersPartsDto);
    }

    /**
     * 审核数据
     *
     //     * @param
     * @return 新增结果
     */
    @PostMapping("/audit")
    public RespBean audit(Integer id,Integer lastUpdatePerson,String status) {

        return orderstableService.audit(id,lastUpdatePerson,status);
    }

    @GetMapping("/queryList")
    public RespBean queryList(String orderId, String[] timeHorizon, String creator) {
        List<Map<String, Object>> mapList = null ;
        if (timeHorizon==null || timeHorizon.length ==0) {
            mapList =  orderstableService.select(orderId,null,null,creator);
        }else{
            mapList =  orderstableService.select(orderId,timeHorizon[0],timeHorizon[1],creator);
        }
        return RespBean.success("OK",mapList);
    }

    @GetMapping("/selectAll")
    public RespBean listOrders(){
        return orderstableService.listOrders();
    }

    @GetMapping("/selectAllAndUser/{id}")
    public RespBean listOrdersAndOrdersParts(@PathVariable("id") Integer id){
        return orderstableService.listOrdersAndOrdersParts(id);
    }
}

